System for installing image sensing program

ABSTRACT

An external program supplied from an external unit in order to process an image sensed by a camera is prevented from causing a malfunction in the camera. An external program supplied by an personal computer is stored in an EEPROM of the camera. The external program contains version information giving the version of the camera that is capable of using the external program, the name of the program for control, and parameter information corresponding to the program name. A CPU compares each of these items of information with corresponding information that has been set in the camera, thereby determining whether the external program is capable of being used. If the external program cannot be used by the camera, a warning display is presented on a display unit.

This application is a continuation of application Ser. No. 08/612,392,filed Mar. 7, 1996 now U.S. Pat. No. 6,452,629.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to an image sensing device, a program forinstalling an image sensing program and a related system.

2. Description of the Related Art

FIG. 8 is a block diagram illustrating the construction of an electroniccamera according to the prior art.

As shown in FIG. 8, the optical image of a subject that has entered viaa lens 1 and diaphragm/shutter 2 is converted to an electrical imagesignal by an image sensing element 3 such as a CCD. This image signal issubjected to pre-processing such as CDS (correlated double sampling) andAGC (automatic gain control) by a pre-processing circuit 4, theprocessed signal is converted to a digital signal by an A/D converter 5and the digital image signal is then processed by a process circuit 6 toobtain image data having a prescribed format. These image data aretemporarily stored in a memory 7, after which they are subjected tocompressing coding by a compression circuit 8 and recorded on arecording medium 9. A memory controller 10 controls the A/D converter 5and compression circuit 8, and a CPU 11 serves as system controller tocontrol the overall system.

In the electronic camera described above, the program executed by theCPU 11 serving as the system controller is permanently provided in a ROMin the form of firmware, and the manner in which an image is to berecorded is decided beforehand when the apparatus is produced at thefactory. This means that the diverse needs of users cannot be satisfied.Accordingly, the applicant has previous proposed a technique throughwhich external programs are supplied to a camera from an external hostcomputer, the programs are recorded on the recording medium 9, thecamera is provided with a mechanism that is capable of executing anexternal program at the time of photography and image informationrecorded by the external program is capable of being expanded.

It has been contemplated to use a bar code, for example, as the externalprogram, read the bar code immediately after photography and record theread information on the recording medium 9 as information attached tothe photographed image. It has also been contemplated to record thephotographed image after subjecting it to certain processing. Forexample, it is possible to supply an external program which converts thephotographed image to a line-art image, an edge detection image, etc.Since these converted images generally contain much less data than theoriginal image obtained by photography, data compression efficiency canbe facilitated and a large number of images can be recorded by therecording medium 9.

The proposed techniques described above extend photography by applyingsome processing to the original image obtained by photography. However,since this function is not necessarily desired by all users, it isprovided as an external program.

In a case where a camera is provided with external programs in the priorart described above, the camera itself and the external device forproviding the camera with the external programs are not capable ofascertaining whether the external programs can be run by the version ofthe camera or by a control program with which the ROM is furnished inadvance. In some cases there is the danger of operation hang-up, meaningthat the camera cannot be used normally unless it is reset. Malfunctionscan occur as well.

Further, when a camera is provided with external programs in theaforesaid prior art, the external programs are transferred from theexternal device, such as a computer, to a non-volatile memory within thecamera or to a recording medium that is capable of being extracted. Oneexternal program is selected by operating the camera, thereby selectingthe photographic mode. Alternatively, the photographic mode is selectedby selecting an external program, which is capable of producing adesired image, by referring to an image file created by photography inthe past.

These photographic modes are significant in that they serve asinstruments for extending the functionality of the camera. It can bepredicted that after the camera is made available for sale, externalprograms capable of implementing several effective photographic modeswill be provided by the camera maker or by other vendors.

In such case, it is possible that an external program for onephotographic mode will be installed and used in a number of cameraspossessed by a number of users. If, when an external program on anextractable recording medium is recorded, the recording medium is usedin cameras or in computers, it is possible that the external programwill be transplanted to many recording media or memories. In a casewhere an external program for obtaining a desired image is establishedin another camera by referring to an image file created by photographyin the past, it is conceivable that the external program used in theearlier photography will be transplanted to the other camera. This is aproblem because it may lead to infringement on the copyright of theexternal program.

In view of these problems, therefore, an object of the present inventionis to prevent an external program from being installed in a camera forwhich the program is not suited.

Another object of the invention is to prevent use of an external programnot suited to a camera.

A further object of the invention is to prevent the unlawfulinstallation of an external program.

Yet another object of the invention is to inhibit use of an externalprogram that has been installed unlawfully.

SUMMARY OF THE INVENTION

An image sensing device according to the present invention is capable ofinstalling an external program, which controls processing relating tosensing of the image of a subject, from an external device, the imagesensing device comprising attribute acquisition means for acquiring anattribute of the external program, discriminating means for determining,based upon the attribute, whether the external program is capable ofbeing used, and inhibiting means for inhibiting installation of theexternal program in a case where the external program is incapable ofbeing used.

An image sensing device according to a second aspect of the invention iscapable of installing an external program, which controls processingrelating to sensing of the image of a subject, from an external device,the image sensing device comprising attribute acquisition means foracquiring an attribute of the external program, discriminating means fordetermining, based upon the attribute, whether the external program iscapable of being used, and inhibiting means for inhibiting use of theexternal program in a case where the external program is incapable ofbeing used.

An installation apparatus according to the present invention is forinstalling an external program, which controls processing relating tosensing of the image of a subject, in an image sensing device, theapparatus comprising device-information acquisition means for acquiringdevice information relating to a function of the image sensing device,discriminating means for determining, based upon the device information,whether the external program is capable of being used by the imagesensing device, and inhibiting means for inhibiting installation of theexternal program in the image sensing device in a case where theexternal program is incapable of being used by the image sensing device.

An installation system according to the present invention is forinstalling an external program, which controls processing relating tosensing of the image of a subject, in an image sensing device from anexternal device, the system comprising attribute acquisition means foracquiring an attribute of the external program, discriminating means fordetermining, based upon the attribute, whether the external program iscapable of being used by the image sensing device, enabling means forenabling installation of the external program in a case where theexternal program is capable of being used by the image sensing device,and installation means for installing the external program in the imagesensing device from the external device in a case where installation hasbeen enabled by the enabling means.

An image sensing device according to a third aspect of the invention iscapable of installing an external program, which controls processingrelating to sensing of the image of a subject, from an external device,the image sensing device comprising holding means for holdingself-identification information, acquisition means for acquiringidentification information that has been attached to the externalprogram, discriminating means for determining whether theself-identification information agrees with the identificationinformation that has been attached to the external program, andinhibiting means for inhibiting installation of the external program ina case where the self-identification information and the identificationinformation that has been attached to the external program fail toagree.

An image sensing device according to a fourth aspect of the invention iscapable of installing an external program that controls processingrelating to sensing of the image of a subject, the image sensing devicecomprising storage means for storing the external program, acquisitionmeans for acquiring identification information that has been attached tothe external program stored in the storage means, holding means forholding self-identification information, discriminating means fordetermining whether the self-identification information agrees with theidentification information that has been attached to the externalprogram, and inhibiting means for inhibiting execution of the externalprogram stored in the storage means in a case where theself-identification information and the identification information thathas been attached to the external program fail to agree.

An installation apparatus according to a second aspect of the presentinvention is for installing an external program, which controlsprocessing relating to sensing of the image of a subject, in an imagesensing device, the apparatus comprising acquisition means for acquiringidentification information of the image sensing device, discriminatingmeans for determining whether identification information that has beenattached to the external program agrees with the identificationinformation of the image sensing device, and inhibiting means forinhibiting installation of the external program in the image sensingdevice in a case where the identification information that has beenattached to the external program and the identification information ofthe image sensing device fail to agree.

An installation system according to a second aspect the presentinvention is for installing an external program, which controlsprocessing relating to sensing of the image of a subject, in an imagesensing device from an external device, the system comprisingacquisition means for acquiring identification information of the imagesensing device, discriminating means for determining whetheridentification information that has been attached to the externalprogram agrees with the identification information of the image sensingdevice, and inhibiting means for inhibiting installation of the externalprogram in the image sensing device in a case where the identificationinformation that has been attached to the external program and theidentification information of the image sensing device fail to agree.

Further objects, features and advantages of the present invention willbecome apparent from the following detailed description of embodimentsof the present invention with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an example of the construction ofa camera system according to the present invention;

FIG. 2 is a diagram showing an example of a tag on which informationrelating to a configuration stored in an external program has beenrecorded;

FIG. 3 is a flowchart showing the flow of processing based upon aninstallation program 206;

FIG. 4 is a flowchart showing the flow of processing based upon aninstallation program 120;

FIG. 5 is a diagram schematically illustrating an example of theconstruction of display unit 118 and control panel 117 of a camera 100;

FIG. 6 is a flowchart showing processing based upon the installationprogram 206 or 120 in a second embodiment of the invention;

FIG. 7 is a flowchart showing processing based upon a control program121 in the second embodiment; and

FIG. 8 is a block diagram showing the basic construction of a camera.

DESCRIPTION OF THE PREFERRED EMBODIMENTS First Embodiment

FIG. 1 is a block diagram illustrating the construction of a camerasystem according to the present invention. The optical image of asubject that has entered a camera 100 via a lens 103 anddiaphragm/shutter 102 is converted to an electrical image signal by animage sensing element 103 such as a CCD (charge-coupled device). Thisimage signal is subjected to pre-processing such as CDS (correlateddouble sampling) and AGC (automatic gain control) by a pre-processingcircuit 104, the processed signal is converted to a digital signal by anA/D converter 105 and the digital image signal obtained from theconversion is then transformed by a process circuit 106 to image datahaving a prescribed format. The image data are stored temporarily in aRAM 107.

A compression circuit 108 compresses the image data that have beenstored in the RAM 107 and then stores the compressed image data on arecording medium 109. A DMA controller 110 controls transfer of dataamong various devices, wherein transfer is by DMA (direct memoryaccess). A CPU 111 executes overall control of the camera 100 based upona control program and the like stored in a ROM 113. An EEPROM 112 storesexternal programs supplied by a personal computer (PC) 200 connected toan external connector 116 and delivers the external programs to the CPU111. The user is capable of operating the camera 100 by a control panel117, and the operating status of the camera 100 is displayed on adisplay unit 118.

The personal computer 200 is connected to the camera 100 by a cameraconnector 201 via a communication cable 115 and has a memory 205 whichstores an installation program 206 and an external program 207. A CPU204 reads in the installation program 206 and, on the basis of theprogram 206, controls processing for installing the external program 207in the camera 100. While observing a display 202 on a monitor of thepersonal computer 200, the user is capable of entering desiredinstructions using an input unit 203 such as a keyboard and a mouse.

The external program 207 includes version information indicative ofcameras capable of using the external program, the program name whichthis program uses, as well as parameters. FIG. 2 illustrates an examplein which configuration-related information 20 such as the version isdescribed in the format of a TAG.

The flow of processing based upon the installation program 206 in thepersonal computer (PC) 200 will now be described with reference to theflowchart of FIG. 3.

The installation program 206 is started up at step S301 so the computermakes a transition to a configuration editing mode. Next, the version ofthe external program 207 is set as the variable VerPC at step 302. Thisis followed by step S303, at which a TSR (terminate but stay) namecapable of being used by the external program 207 is set as a variableTSRPC.

Next, at step S304, the parameter name of the TSR capable of being usedby the external program 207 is set as a variable TSRParamPC. Theinformation 20 relating to configuration mode is read out of the camera100 via the communication cable 115 and camera connector 201 at stepS305. A parallel port, a serial port, an SCSI, etc., can be used forcommunication.

Next, at step S306, the version, TSR name and TSR parameter name areacquired from the read information 20 relating to the configurationmode, and the version is substituted for the variable VerCamera, the TSRname for TSRCamera, and the parameter name of the TSR forTSRParamCamera.

Step S307 calls for VerPC and VerCamera to be compared. Processingproceeds to step S308 if VerPC≧VerCamera holds and to step S311 ifVerPC<VerCamera holds. Though the version usually can be updated to ahigher version, there are also cases where operation is possible onlywith the same version. In such cases processing would proceed to stepS308 only when VerPC=VerCamera holds.

This is followed by step S308, at which TSRPC and TSRCamera arecompared. Processing proceeds to step S309 if the two are equal and tostep S311 if the two are not equal. TSRParam and TSRParamCamera arecompared at step S309. Processing proceeds to step S309 if the two areequal and to step S311 if the two are not equal. The configuration modeis edited at step S310 in conformity with the external program 207 to beinstalled.

Step S311 calls for the user to be warned of the fact that theconfiguration mode is incapable of being altered. This warning can beissued using the display 202 or display unit 118. In a case where thewarning is issued using the display unit 118, for example, theindication of the warning can take on various forms depending upon theform of the display unit 118.

The external program 207 is installed in the camera 100 at step S312.Whether another external program 207 is selected is decided at step S313based upon a command from the user. If the answer is “YES”, processingreturns to step S305. If the answer is “NO”, the program proceeds tostep S314, where processing is terminated.

The flow of processing based upon the installation program 120 in thecamera 100 will now be described with reference to FIG. 4. It should benoted that the installation programs 120, 206 are run independently ofeach other so that installation can be performed by either program.

The installation program 120 is started up at step S401. Start-up isachieved by having the operator press a mode button 117 a shown in FIG.5, whereby the installation mode is selected.

Next, the version of the ROM 13 (control program 121) is set as thevariable VerCamera at step 402. This is followed by step S403, at whicha TSR name capable of being used by the variable TSRCamera 100 is set.Next, at step S404, the parameter name of the TSR capable of being usedby camera 100 is set as a variable TSRParamCamera.

The information 20 relating to the configuration mode is read out of thepersonal computer 200 via the communication cable 115 and externalconnector 116 at step S405. Next, at step S406, the version, TSR nameand TSR parameter name are acquired from the read information 20relating to the configuration mode, and the version is substituted forthe variable VerConfig, the TSR name for TSRConfig, and the parametername for TSRParamConfig.

Step S407 calls for VerCamera and VerConfig to be compared. Processingproceeds to step S408 if VerCamera≧VerConfig holds and to step S411 ifVerCamera<VerConfig holds. In a case where the camera operates only whenthe version is identical, processing would proceed to step S408 onlywhen VerCamera=VerConfig holds.

This is followed by step S408, at which TSRCamera and TSRConfig arecompared. Processing proceeds to step S409 if the two are equal and tostep S411 if the two are not equal. TSRParamCamera and TSRParamConfigare compared at step S409. Processing proceeds to step S409 if the twoare equal and to step S411 if the two are not equal. In a case where theTSR name and parameter name are not present in the information 20relating to the configuration mode, the above-mentioned comparisoncannot be made. Accordingly, processing proceeds to step S411 and theuser is warned.

The external program 207 is acquired from the personal computer 200 atstored in the EEPROM 112 at step S410. Step S411 calls for the user tobe warned of the fact that use (installation) of the designated externalprogram is impossible. This warning can be issued by causing anindicator on the display unit 118 to flash. Further, the warning may beissued by the display 202. For example, the user may respond to thewarning by preparing another external program and pressing the modebutton 117 a again to select the installation mode and install theprogram.

In the embodiment described above, it is determined at the time ofinstallation whether an external program to be installed is suited tothe camera. Installation of an external program that is not suitable isprevented. However, the present invention can be applied in thefollowing manner as well, by way of example: When an external program isused after it has been installed (e.g., in a case where a recordingmedium on which the external program has been stored is used as therecording medium 109), it is determined whether the external program issuited to the camera. If the external program is unsuitable, running ofthe program is stopped.

In order to realize this arrangement, the configuration would beacquired from the external program to be used instead of being read infrom the personal computer 200 at step S405. Then, at steps S406˜S409,it would be determined whether this external program is suited to thecamera and use of the external program would be allowed at step S410 ifthe external program is found to be suitable.

Thus, in accordance with the present invention as described above,version information giving the version of a camera that is capable ofusing an external program, the environment in which the external programcan be run, the necessary programs and information such as parametersare stored in the external program in advance. Then, at the time ofinstallation or after installation has been performed, a comparison ismade with the functions of the camera and installation or use of theexternal program is allowed based upon the results of the comparison.This makes it possible to eliminate start-up of an external program thatcannot be run and to suppress hang-up or malfunction of the camera or ofthe external control system, such as a personal computer.

Second Embodiment

In this embodiment, the camera ID of a camera in which the externalprogram 207 is to be installed is recorded in a camera-ID storagesection 208, which is provided within the external program 207, beforethe external program 207 is installed in the camera 100. Then, when theexternal program 207 is installed in the camera 100 or after theexternal program 207 has been installed, the camera ID, which has beenrecorded in a camera-ID storage unit 123 of the camera 100 is comparedwith the camera ID that has been recorded in the camera-ID storagesection 208, and installation or use of the external program 207 isallowed only if the two IDs agree.

As a result of this operation, it is possible to prevent the sameexternal program 207 from being installed in a number of cameras withoutpermission. In addition, if the EEPROM 112 or the like used by thecamera 100 differs from the EEPROM of another camera, an externalprogram that has already been installed in this EEPROM 112 can beprevented from being used without permission.

Further, in this embodiment, the external program may be supplied to thecamera 100 together with a sample image (image file) indicating theeffects of the external program. In this case it will suffice if thesample image is supplied in a standard image file format, e.g., a TIFFformat. Since the standard image format has an area which stores commenttext, information for specifying the corresponding external program maybe stored in this area. An example of the specifying information whichmay be used is the name of the external program. For instance, in a casewhere use is made of an image file having a TIFF format, it will sufficeto record the file name of the required external program and, if theexternal program requires a set option, the set option value. This isset in advance in the form of a private tag. As for the description ofthis information, an ASCII character string may be used as the file nameand binary data or an ASCII character string may be used as the value ofthe option, by way of example. A method of constructing a private taghaving a TIFF format is described in detail in TIFF Revision 6.0, Jun.3, 1992, published by Aldus. The method is adopted in a part of thisapplication.

The flow of processing of this embodiment based upon the installationprogram 206 in the personal computer (PC) 200 will now be described withreference to the flowchart of FIG. 6. It should be noted that byproviding the camera 100 with an installation program whose procedure issubstantially the same as that of the installation program 206, thecontrol described below may be performed by the installation program120. However, the following description will be rendered solely withregard to the installation program 206 in order to avoid prolixity.

On the basis of one or a plurality of image files 209 in the memory 205,the installation program 206 displays sample images on the display 202at step S1. It should be noted that the personal computer 200 is capableof acquiring image data present on the recording medium 109 of thecamera 100 via the cable 115, subjecting an image actually accepted bythe camera 100 to processing by the external program 207 and displayingthe results for the user.

As mentioned above, information indicating which external program wasused for processing has been stored in all image files 209. Naturally,images that have been recorded without using an external program alsomay exist. The above-mentioned private tag indicating information is notattached to such an image file. Alternatively, if the private tag isattached, the file name portion is left blank. In other words, it willsuffice to adopt an expedient that indicates the fact that the externalprogram is not being used. The user can select a specific externalprogram by selecting a desired sample image from among a variety ofsample images.

The file name of the external program 207 selected at step S1 isobtained at step S2. Whether the external program 207 is already presentin the EEPROM 112 of the camera 100 is checked at step S3. Processingproceeds to step S4 if the external program 207 is present and to stepS5 if the external program 207 is not present.

The fact that the selected external program 207 has been installed inthe EEPROM 112 of the camera 100 is made known to the user at step S4 asby the display 202 and processing is them terminated.

It is determined at step S5 whether the substance of the selectedexternal program 207 is present in the memory 205. The reason for thisis that there the external program 207 corresponding to the image file209 may not exist. Processing proceeds to step S6 if this externalprogram does exist and to step S11 if it does not exist.

If the selected external program 207 requires the setting of an option,the user is allowed to edit this at step S6. In such case it is desiredthat an arrangement be adopted in which editing can be started using thevalue of the option belonging to the corresponding image file 209 as adefault setting value.

Next, at step S7, the user verifies whether or not the selected externalprogram 207 is to be installed in the camera 100. In case ofinstallation, processing proceeds to step S8; otherwise, processing isterminated. It is determined at step S8 whether the camera ID has beenrecorded in the camera-ID storage section 208 of the selected externalprogram 207. Processing proceeds to step S12 if the camera ID has notbeen recorded and to step S9 if the camera ID has been recorded.

At step S9, the camera ID is acquired from the camera 100 via the cable115, and the camera ID already recorded in the camera-ID storage section208 of the selected external program 207 is compared with the camera IDacquired from the camera 100. Processing proceeds to step S10 if the twoIDs agree and to step S13 if the two IDs do not agree.

The selected external program 207 is installed in the camera 100 at stepS10. If the recording medium 109 has enough capacity, the correspondingsample image (image file 209) may also be transferred to the cameratogether with external program so that the sample image can be confirmedon the camera 100.

At step S11, the user is alerted to the fact that the selected externalprogram 207 has not been supplied to the camera 100 and a designation ismade to establish a state in which the substance of the selectedexternal program 207 can be acquired by the installation program 206.Processing is then terminated.

The camera ID is extracted from the camera 100 and is recorded in theID-storage section 208 of the external program 207 at step S12.Processing then proceeds to step S10. The user is notified at step S13of the fact that installation is impossible because the camera IDrecorded in the selected external program 207 and the camera ID of thecamera currently connected to the personal computer 200 differ.Processing is then terminated.

A list of the names of installed external programs and of the setoptions thereof is recorded in the EEPROM 112. Further, in a case wheresample images (image files) 209 have been transferred along with theexternal programs, a list of the file names also is recorded. Textinformation that has been stored in installed external programs also maybe recorded in the EEPROM 112. The user can select one external programfrom a plurality thereof by referring to these lists.

In a case where an external program having the same conditions (the sameexternal program name or the same set options) has already been recordedin the EEPROM 112, registration anew is not required. Consequently, itwill suffice to indicate to the user the fact that installation hasalready been performed at step S6, by way of example.

Next, a method of inhibiting use of an external program 122 in thecamera 100 in a case where the external program 122 has been installedunlawfully (i.e., in a case where the external program 122 is not onethat has been installed by the installation program 206) will bedescribed with reference to FIG. 7. Unlawful installation can take onvarious forms. One example is a case where a recording medium on whichthe external program has been stored is used as the EEPROM 112.

FIG. 7 illustrates the flow of processing based upon the control program121. At step S20, the user presses the motor button 117 a on the camera100 to select the mode which uses the external program 122. Whenever theuser presses the mode button 117 a, the camera 100 acquires theinformation of one or a plurality of external programs 122 recorded inthe EEPROM 112 and displays the information on the display unit 118. Ofcourse, an ordinary recording mode which does not make use of anexternal program also can be selected.

This display of information differs depending upon the displaycapability of the camera 100. An example of a simple and inexpensivemethod is to light four numbers (“1”, “2”, “3”, “4”) in succession, asshown in FIG. 5, on the display unit 118. In this case, installableexternal programs are limited to four and it is necessary for the userto know the corresponding relationship between the numbers and theexternal programs.

In a case where the display unit 118 of the camera 100 is capable ofdisplaying text, the selected external program can be indicated to theuser by displaying text information (the name of the external program)that has been recorded in the EEPROM 112.

Further, in a case where the display unit 118 of the camera 100 iscapable of displaying an image, an image file name that has been storedin the EEPROM 112 can be acquired and the corresponding image file canbe read out of the recording medium 109 and displayed, thereby making itpossible to confirm the specific function of the external programdisplayed.

With regard to the expression of an ordinary photography mode (a case inwhich an external program is not used), all four of the numbers may beextinguished, for example, if the camera is provided with the displayunit 118 shown in FIG. 5. Further, if the display unit 118 of the camerais capable of displaying text or images, a character string indicativeof the ordinary photography mode, e.g., “Normal”, may be displayed.

A camera ID that has been stored in a camera-ID storage section 124 ofthe selected external program 122 is acquired at step S21. This isfollowed by step S22, at which the camera ID acquired from the selectedexternal program is compared with the camera ID of the camera itselfstored in the camera-ID storage unit 123. Processing proceeds to stepS24 if the two IDs agree and to step S23 if they do not agree.

The fact that the selected external program (photographic mode) cannotbe used with the camera is made known to the user at step S23 bydisplaying this fact on the display section 118. There are several waysthis can be accomplished. For example, one method is to cause theselected external program to appear gray, and another method is toattach an inhibiting mark before or after the external program name.

The camera waits for the user to press a release button 117 at step S24in order to verify the external program (photographic mode) used. In acase where an external program has been designated, the external programis read out of the EEPROM 112 and transferred to the RAM 107 at stepS25.

This is followed by step S26, at which the entry address of thetransferred external program is called as a subroutine, thereby shiftingcontrol to this external program. If a set option has been recorded inthe ROM 112, the set value thereof is delivered as a parameter.

Processing is executed at step S27 in accordance with the externalprogram that has been transferred to the RAM 107, and an image file iscreated. At this time the external program stores its own file name andthe set option in the image file. The image processed by the externalprogram is processed by the process circuit 106 and compression circuit108, and the processed image is recorded on the recording medium 109.

Thus, in accordance with the present invention as described above, it ispossible to prevent one external program from being installed unlawfullyin a number of cameras.

Further, in a case where an external program has been installed in acamera unlawfully by an extractable recording medium, use of the programin the camera can be inhibited.

Other Embodiments

The present invention can be applied to a system constituted by aplurality of devices or to an apparatus comprising a single device.

Further, the object of the present invention can also be attained byproviding a storage medium, which stores program codes for performingthe aforesaid processes, in a system or apparatus, and reading out theprogram codes from the storage medium with the help of a computer (e.g.,a CPU or MPU) of the system or apparatus so as to execute the program.

In this case, the program codes read out of the storage medium implementthe functions according to the embodiments, and the storage mediumstoring the program codes constitutes the invention.

Further, the storage medium, such as a floppy disk, hard disk, opticaldisk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, non-volatilememory card or ROM, can be used to provide the program codes.

Furthermore, besides the case where the aforesaid functions according tothe embodiments are implemented by executing the program codes read by acomputer, the present invention covers a case where an operating system(OS) or the like working on the computer performs a part of or theentire process in accordance with the designation of program codes andimplements the functions according to the embodiments.

Furthermore, the present invention further covers a case where, afterthe program codes read from the storage medium are written in a functionextension card inserted into the computer or in a memory provided in afunction extension unit connected to the computer, a CPU or the likecontained in the function extension card or function extension unitperforms a part of or the entire process in accordance with thedesignation of program codes and implements the function of the aboveembodiments.

The present invention is not limited to the above embodiments andvarious changes and modifications can be made within the spirit andscope of the present invention. Therefore, to apprise the public of thescope of the present invention, the following claims are made.

1. An external control device for an image sensing device, the externalcontrol device comprising: a communication unit configured to establishcommunication with the image sensing device, and to receive versioninformation from the image sensing device; a discriminating unitconfigured to compare the version information received from the imagesensing device with version information included in an external programfor performing processing on an image sensed by the image sensingdevice, to determine whether the external program is capable of beingused in the image sensing device; and an installation unit configured toinstall the external program via the communication unit in the imagesensing device when the discriminating unit determines that the externalprogram is capable of being used in the image sensing device.